package org.jsola.hr.helper;

import org.jsola.common.SafeKit;
import org.jsola.hr.dto.UserReadCompanySysNoticeAddDTO;
import org.jsola.hr.dto.UserReadCompanySysNoticeUpdateDTO;
import org.jsola.hr.entity.UserReadCompanySysNoticeDO;
import org.jsola.hr.query.UserReadCompanySysNoticeQuery;
import org.jsola.hr.service.IUserReadCompanySysNoticeService;
import org.jsola.hr.vo.UserReadCompanySysNoticeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.List;

import static org.jsola.hr.core.AbstractTest.SITE_ID;



/**
 * 用户已阅公司系统公告(用户阅读公司系统公告后添加)
 *
 * @author zhr
 */
@Component
public class UserReadCompanySysNoticeTestHelper extends BaseTestHelper {
    
    @Autowired
    private IUserReadCompanySysNoticeService userReadCompanySysNoticeService;

    /**
     * 生成add测试数据
     * @return UserReadCompanySysNoticeAddDTO
     */
    public UserReadCompanySysNoticeAddDTO getUserReadCompanySysNoticeAddDTO(){
        UserReadCompanySysNoticeAddDTO userReadCompanySysNoticeAddDTO = new UserReadCompanySysNoticeAddDTO();
        userReadCompanySysNoticeAddDTO.setUserId(getRandomValue("varchar",32));
        userReadCompanySysNoticeAddDTO.setSysNoticeId(getRandomValue("varchar",32));
        userReadCompanySysNoticeAddDTO.setHasDel(SafeKit.getBoolean(getRandomValue("tinyint",1)));
        return userReadCompanySysNoticeAddDTO;
    }


    /**
     * 生成update测试数据
     * @return UserReadCompanySysNoticeUpdateDTO
     */
    public UserReadCompanySysNoticeUpdateDTO getUserReadCompanySysNoticeUpdateDTO(UserReadCompanySysNoticeVO userReadCompanySysNoticeVO){
        return userReadCompanySysNoticeService.selectDOById(userReadCompanySysNoticeVO.getId(), SITE_ID).to(UserReadCompanySysNoticeUpdateDTO.class);
    }

    /**
     * 生成查询数据
     * @return UserReadCompanySysNoticeQuery
     */
    public UserReadCompanySysNoticeQuery getUserReadCompanySysNoticeQuery() {
        UserReadCompanySysNoticeQuery userReadCompanySysNoticeQuery = new UserReadCompanySysNoticeQuery();
        List<UserReadCompanySysNoticeDO> userReadCompanySysNoticeDOList = userReadCompanySysNoticeService.list(new UserReadCompanySysNoticeDO(),SITE_ID);
        if (!CollectionUtils.isEmpty(userReadCompanySysNoticeDOList)) {
            UserReadCompanySysNoticeDO userReadCompanySysNoticeDO = userReadCompanySysNoticeDOList.get(0);
            userReadCompanySysNoticeQuery = userReadCompanySysNoticeDO.to(UserReadCompanySysNoticeQuery.class);
        }
        return userReadCompanySysNoticeQuery;
    }

    /**
     * 保存示例
     * @return UserReadCompanySysNoticeVO
     */
    public UserReadCompanySysNoticeVO saveUserReadCompanySysNoticeExample(){
        UserReadCompanySysNoticeAddDTO addDTO = this.getUserReadCompanySysNoticeAddDTO();
        UserReadCompanySysNoticeVO userReadCompanySysNoticeVO = userReadCompanySysNoticeService.save(addDTO,buildTokenUser());
        return userReadCompanySysNoticeVO;
    }


}

